﻿using System;
using System.Collections.Generic;

namespace Goooodbye.Core.SharedKernel
{
    public interface IService<E,M,Q>
        where E : Entity
        where M : IModel
        where Q : PagingQuery
    {
        M Get(string id);
        PagedList<M> Query(Q query = null);
        bool Save(E entity);
        bool Remove(string id);
        IList<string> Validate(E entity);
    }
}
